﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NangLuongTieuDiemDTO.DTO;
using NangLuongTieuDiemBUS.SDK;
using DevExpress.XtraGrid.Columns;
using NangLuongTieuDiemBUS;

namespace NangLuongTieuDiemGUI.NangLuongTieuDiemUserControl
{
    public partial class ucLuoiHienThiPinNangLuong : UserControl
    {
        #region "[khởi tạo và lấy kiểu của loại sản phẩm]"
        enum TypeProduct
        {
            Pin,
            Acquy,
            DieuKhienSac,
            ThietBiDien
        }
        private TypeProduct GetType(int _iType)
        {
            switch (_iType)
            {
                case 2:
                    return TypeProduct.Acquy;
                case 3:
                    return TypeProduct.DieuKhienSac;
                case 4:
                    return TypeProduct.ThietBiDien;
                default:
                    return TypeProduct.Pin;
            }
        }
        #endregion

        #region "[Biến toàn cục]"
        private List<SanPhamDTO> listSanPhams = new List<SanPhamDTO>();
        private string m_strTextUserContrl = string.Empty;
        private List<SanPham_AcquySDK> listAcquy = new List<SanPham_AcquySDK>();
        int m_iType = -1;
        private List<SanPham_BoDieuKhienSacSDK> listBoDieuKhien = new List<SanPham_BoDieuKhienSacSDK>();
        private List<SanPham_ThietBiDienSDK> listThietBiDien;
        #endregion

        #region "[Khởi tạo mặc định]"
        public ucLuoiHienThiPinNangLuong()
        {
            InitializeComponent();
        }
        #endregion

        #region "[Khởi tạo có tham số truyền vào]"
        public ucLuoiHienThiPinNangLuong(List<SanPhamDTO> _listobjs)
        {
            try
            {
                listSanPhams = _listobjs;
                m_strTextUserContrl = "Danh sách các tấm Pin";
                m_iType = 1;
                InitializeComponent();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ucLuoiHienThiPinNangLuong", ex);
            }
        }

        public ucLuoiHienThiPinNangLuong(List<SanPham_AcquySDK> _listAcquy)
        {
            try
            {
                // TODO: Complete member initialization
                listAcquy = _listAcquy;
                m_strTextUserContrl = "Danh sách Acquy";
                m_iType = 2;
                InitializeComponent();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ucLuoiHienThiPinNangLuong", ex);
            }

        }

        public ucLuoiHienThiPinNangLuong(List<SanPham_BoDieuKhienSacSDK> _listBoDieuKhien)
        {
            try
            {
                // TODO: Complete member initialization
                this.listBoDieuKhien = _listBoDieuKhien;
                m_strTextUserContrl = "Danh sách Bộ Điều Khiển Sạc";
                m_iType = 3;
                InitializeComponent();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ucLuoiHienThiPinNangLuong", ex);
            }
        }

        public ucLuoiHienThiPinNangLuong(List<SanPham_ThietBiDienSDK> _listThietBiDien)
        {
            try
            {
                // TODO: Complete member initialization
                this.listThietBiDien = _listThietBiDien;
                m_strTextUserContrl = "Danh sách Thiết Bị Điện";
                m_iType = 4;
                InitializeComponent();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ucLuoiHienThiPinNangLuong", ex);
            }
        }
        #endregion

        #region "[Load]"
        private void ucLuoiHienThiPinNangLuong_Load(object sender, EventArgs e)
        {
            try {
                LoadDataGridview();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ucLuoiHienThiPinNangLuong_Load", ex);
            }
        }
        #endregion

        #region "[Load datagridview]"
        private void LoadDataGridview()
        {
            try
            {
                switch (GetType(m_iType))
                {
                    case TypeProduct.Pin:
                        //hiển thị control theo kiểu Pin
                        ShowDataGridViewPin();
                        break;
                    case TypeProduct.Acquy:
                        //hiển thị control theo kiểu Acquy
                        ShowDataGridViewAcquy();
                        break;
                    case TypeProduct.DieuKhienSac:
                        //hiển thị control theo kiểu DieuKhienSac
                        ShowDataGridViewDieuKhienSac();
                        break;
                    case TypeProduct.ThietBiDien:
                        //hiển thị control theo kiểu ThietBiDien
                        ShowDataGridViewThietBiDien();
                        break;
                }
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoadDataGridview", ex);
            }
        }
        #endregion

        #region "[Hiển thị các trường tương ứng khi gridview được vẽ lên]"
        private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            try
            {
                #region "[Đánh số thứ tự]"
                if (e.Column.Name == "colSTT")
                {
                    e.DisplayText = (e.RowHandle + 1).ToString();
                }
                #endregion

                #region "[Hiển thị tên loại sản phẩm]"
                if (e.Column.Name == "colLoaiTenSanPham")
                {
                    LoaiSanPhamDTO LoaiSPItem = null;
                    switch(GetType(m_iType))
                    {
                        case TypeProduct.Pin:
                            SanPhamDTO PinItem = (SanPhamDTO)gridView1.GetRow(e.RowHandle);
                            if (PinItem != null)
                            {
                                //hiển thị loại sản phẩm
                                LoaiSPItem = NangLuongTieuDiem_Management.LoaiSanPham_SelectByPrimaryKey(PinItem.LoaiSanPhamID);
                                e.DisplayText = LoaiSPItem.TenLoaiSanPham;
                            }
                            break;

                        case TypeProduct.Acquy:
                            SanPham_AcquySDK ItemAcquy = (SanPham_AcquySDK)gridView1.GetRow(e.RowHandle);
                            if (ItemAcquy != null)
                            {
                                LoaiSPItem = NangLuongTieuDiem_Management.LoaiSanPham_SelectByPrimaryKey(ItemAcquy.LoaiSanPhamID);
                            }
                            break;
                        case TypeProduct.DieuKhienSac:
                            SanPham_BoDieuKhienSacSDK ItemDieuKhienSac = (SanPham_BoDieuKhienSacSDK)gridView1.GetRow(e.RowHandle);
                            if (ItemDieuKhienSac != null)
                            {
                                LoaiSPItem = NangLuongTieuDiem_Management.LoaiSanPham_SelectByPrimaryKey(ItemDieuKhienSac.LoaiSanPhamID);
                            }
                            break;
                        case TypeProduct.ThietBiDien:
                            SanPham_ThietBiDienSDK ItemThietBiDien = (SanPham_ThietBiDienSDK)gridView1.GetRow(e.RowHandle);
                            if (ItemThietBiDien != null)
                                LoaiSPItem = NangLuongTieuDiem_Management.LoaiSanPham_SelectByPrimaryKey(ItemThietBiDien.LoaiSanPhamID);
                            break;
                    }
                    e.DisplayText = LoaiSPItem.TenLoaiSanPham;
                }
                #endregion

                #region "[Hiển thi thông số kỹ thuật]"
                try {
                    if (e.Column.Name == "colThongSoKyThuat")
                    {
                        if (GetType(m_iType) == TypeProduct.Pin)
                        {
                            SanPhamDTO Item = (SanPhamDTO)gridView1.GetRow(e.RowHandle);
                            if (Item != null)
                                e.DisplayText = Item.Dai.ToString() + "x" + Item.Rong.ToString() + "x" + Item.Day + " (mm)";
                        }
                        
                    }
                }
                catch { }
                #endregion

                #region "[Hiển thị chất liệu]"
                try {
                    if (e.Column.Name == "colChatLieu")
                    { 
                        if(GetType(m_iType)== TypeProduct.ThietBiDien)
                        {
                            SanPham_ThietBiDienSDK Itemsa = (SanPham_ThietBiDienSDK)gridView1.GetRow(e.RowHandle);
                            int iPos = Itemsa.GhiChu.IndexOf("-");
                            if (iPos > 0)
                                e.DisplayText = Itemsa.GhiChu.Substring(0, iPos);
                        }

                    }
                }
                catch { }
                #endregion
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("gridView1_CustomDrawCell", ex);
            }
        }
        #endregion

        #region "[Show dgv Pin]"
        private void ShowDataGridViewPin()
        {
          try
            {
                gridView1.GroupPanelText = m_strTextUserContrl;

                //CỘT SỐ THỨ TỰ
                GridColumn colSTT = gridView1.Columns.Add();
                colSTT.Caption = "STT";
                colSTT.Name = "colSTT";
                colSTT.VisibleIndex = 0;
                colSTT.Visible = true;

                //CỘT TÊN SẢN PHẨM
                GridColumn Ten = gridView1.Columns.Add();
                Ten.Caption = "Tên Sản Phẩm";
                Ten.Name = "colTenSanPham";
                Ten.FieldName = "TenSanPham";
                Ten.VisibleIndex = 1;
                Ten.Visible = true;

                //CỘT LOẠI SẢN PHẨM
                GridColumn LoaiSanPhamID = gridView1.Columns.Add();
                LoaiSanPhamID.Caption = "LoaiSanPhamID";
                LoaiSanPhamID.Name = "colLoaiSanPhamID";
                LoaiSanPhamID.FieldName = "LoaiSanPhamID";
                //Ten.VisibleIndex = 1;
                LoaiSanPhamID.Visible = false;

                //CỘT TÊN LOẠI SẢN PHẨM - CỘT PHÁT SINH 
                GridColumn TenLoaiSanPham = gridView1.Columns.Add();
                Ten.Caption = "Loại Sản Phẩm";
                Ten.Name = "colLoaiTenSanPham";
                Ten.VisibleIndex = 2;
                Ten.Visible = true;

                //CỘT CÔNG SUẤT
                GridColumn CongSuat = gridView1.Columns.Add();
                CongSuat.Caption = "Công Suất";
                CongSuat.Name = "colCongSuat";
                CongSuat.FieldName = "CongSuat"; ;
                CongSuat.VisibleIndex = 3;
                CongSuat.Visible = true;

                //CỘT CHIỀU DÀI
                GridColumn ChieuDai = gridView1.Columns.Add();
                ChieuDai.Caption = "Dai";
                ChieuDai.Name = "colDai";
                ChieuDai.FieldName = "Dai";
                //ChieuDai.VisibleIndex = 1;
                ChieuDai.Visible = false;

                //CỘT CHIỀU RỘNG
                GridColumn ChieuRong = gridView1.Columns.Add();
                ChieuRong.Caption = "Rong";
                ChieuRong.Name = "colRong";
                ChieuRong.FieldName = "Rong";
                //ChieuRong.VisibleIndex = 1;
                ChieuRong.Visible = false;

                //CỘT CHIỀU DÀY
                GridColumn BeDay = gridView1.Columns.Add();
                BeDay.Caption = "Day";
                BeDay.Name = "colDay";
                BeDay.FieldName = "Day";
                //BeDay.VisibleIndex = 1;
                BeDay.Visible = false;

                //CỘT THÔNG SỐ KỸ THUẬT
                GridColumn ThongSoKyThuat = gridView1.Columns.Add();
                ThongSoKyThuat.Caption = "Thông Số Kỹ Thuật";
                ThongSoKyThuat.Name = "colThongSoKyThuat";
                ThongSoKyThuat.VisibleIndex = 4;
                ThongSoKyThuat.Visible = true;

                //CỘT IMP
                GridColumn Imp = gridView1.Columns.Add();
                Imp.Caption = "Imp";
                Imp.Name = "colImp";
                Imp.FieldName = "Imp";
                Imp.VisibleIndex = 5;
                Imp.Visible = true;

                //CỘT VMP
                GridColumn Vmp = gridView1.Columns.Add();
                Vmp.Caption = "Vmp";
                Vmp.Name = "colVmp";
                Vmp.FieldName = "Vmp";
                Vmp.VisibleIndex = 6;
                Vmp.Visible = true;

                //CỘT ISC
                GridColumn Isc = gridView1.Columns.Add();
                Isc.Caption = "Isc";
                Isc.Name = "colIsc";
                Isc.FieldName = "Isc";
                Isc.VisibleIndex = 7;
                Isc.Visible = true;

                //CỘT VOC
                GridColumn Voc = gridView1.Columns.Add();
                Voc.Caption = "Voc";
                Voc.Name = "colVoc";
                Voc.FieldName = "Voc";
                Voc.VisibleIndex = 8;
                Voc.Visible = true;

                //CỘT NGUỒN NHẬP
                GridColumn NguonNhap = gridView1.Columns.Add();
                NguonNhap.Caption = "Nguồn Nhập";
                NguonNhap.Name = "colNguonNhap";
                NguonNhap.FieldName = "NguonNhap";
                NguonNhap.VisibleIndex = 9;
                NguonNhap.Visible = true;

                //CỘT GIÁ.
                GridColumn Gia = gridView1.Columns.Add();
                Gia.Caption = "Giá";
                Gia.Name = "colGia";
                Gia.FieldName = "Gia";
                Gia.VisibleIndex = 10;
                Gia.Visible = true;

                //CỘT XÓA
                GridColumn Xoa = gridView1.Columns.Add();
                Xoa.Caption = "Xoa";
                Xoa.Name = "colXoa";
                Xoa.FieldName = "Xoa";
                //Xoa.VisibleIndex = 1;
                Xoa.Visible = false;

                //CỘT GHI CHÚ
                GridColumn GhiChu = gridView1.Columns.Add();
                GhiChu.Caption = "Ghi Chú";
                GhiChu.Name = "colGhiChu";
                GhiChu.FieldName = "GhiChu";
                GhiChu.VisibleIndex = 11;
                GhiChu.Visible = true;
                dgvHienThi.DataSource = listSanPhams;
            }
          catch (Exception ex)
          {
              InSert_LoiHeThong("ShowDataGridViewPin", ex);
          }
        }
        #endregion

        #region "[Show dgv acquy]"
        /// <summary>
        /// Show dgv acquy
        /// </summary>
        private void ShowDataGridViewAcquy()
        {
            try
            {
                gridView1.GroupPanelText = m_strTextUserContrl;

                //CỘT SỐ THỨ TỰ
                GridColumn colSTT = gridView1.Columns.Add();
                colSTT.Caption = "STT";
                colSTT.Name = "colSTT";
                colSTT.VisibleIndex = 0;
                colSTT.Visible = true;

                //CỘT TÊN SẢN PHẨM
                GridColumn Ten = gridView1.Columns.Add();
                Ten.Caption = "Tên Sản Phẩm";
                Ten.Name = "colTenSanPham";
                Ten.FieldName = "TenSanPham";
                Ten.VisibleIndex = 1;
                Ten.Visible = true;

                //CỘT LOẠI SẢN PHẨM
                GridColumn LoaiSanPhamID = gridView1.Columns.Add();
                LoaiSanPhamID.Caption = "LoaiSanPhamID";
                LoaiSanPhamID.Name = "colLoaiSanPhamID";
                LoaiSanPhamID.FieldName = "LoaiSanPhamID";
                //Ten.VisibleIndex = 1;
                LoaiSanPhamID.Visible = false;

                //CỘT TÊN LOẠI SẢN PHẨM - CỘT PHÁT SINH 
                GridColumn TenLoaiSanPham = gridView1.Columns.Add();
                Ten.Caption = "Loại Sản Phẩm";
                Ten.Name = "colLoaiTenSanPham";
                Ten.VisibleIndex = 2;
                Ten.Visible = true;

                //CỘT CÔNG SUẤT
                GridColumn CongSuat = gridView1.Columns.Add();
                CongSuat.Caption = "Số AH";
                CongSuat.Name = "colSoAH";
                CongSuat.FieldName = "SoAH";
                CongSuat.VisibleIndex = 3;
                CongSuat.Visible = true;

                //CỘT VMP
                GridColumn Vmp = gridView1.Columns.Add();
                Vmp.Caption = "Hiệu Điện Thế";
                Vmp.Name = "colU";
                Vmp.FieldName = "HieuDienThe";
                Vmp.VisibleIndex = 4;
                Vmp.Visible = true;

                //CỘT NGUỒN NHẬP
                GridColumn NguonNhap = gridView1.Columns.Add();
                NguonNhap.Caption = "Nguồn Nhập";
                NguonNhap.Name = "colNguonNhap";
                NguonNhap.FieldName = "NguonNhap";
                NguonNhap.VisibleIndex = 5;
                NguonNhap.Visible = true;

                //CỘT GIÁ.
                GridColumn Gia = gridView1.Columns.Add();
                Gia.Caption = "Giá";
                Gia.Name = "colGia";
                Gia.FieldName = "Gia";
                Gia.VisibleIndex = 6;
                Gia.Visible = true;

                //CỘT XÓA
                GridColumn Xoa = gridView1.Columns.Add();
                Xoa.Caption = "Xoa";
                Xoa.Name = "colXoa";
                Xoa.FieldName = "Xoa";
                //Xoa.VisibleIndex = 1;
                Xoa.Visible = false;

                //CỘT GHI CHÚ
                GridColumn GhiChu = gridView1.Columns.Add();
                GhiChu.Caption = "Ghi Chú";
                GhiChu.Name = "colGhiChu";
                GhiChu.FieldName = "GhiChu";
                GhiChu.VisibleIndex = 7;
                GhiChu.Visible = true;

                dgvHienThi.DataSource = listAcquy;
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowDataGridViewAcquy", ex);
            }
        }
        #endregion

        #region "[Show dgv Dieu Khien sac]"
        /// <summary>
        /// Show dgv Dieu Khien sac
        /// </summary>
        private void ShowDataGridViewDieuKhienSac()
        {
            try
            {
                gridView1.GroupPanelText = m_strTextUserContrl;
                //CỘT SỐ THỨ TỰ
                GridColumn colSTT = gridView1.Columns.Add();
                colSTT.Caption = "STT";
                colSTT.Name = "colSTT";
                colSTT.VisibleIndex = 0;
                colSTT.Visible = true;

                //CỘT TÊN SẢN PHẨM
                GridColumn Ten = gridView1.Columns.Add();
                Ten.Caption = "Tên Sản Phẩm";
                Ten.Name = "colTenSanPham";
                Ten.FieldName = "TenSanPham";
                Ten.VisibleIndex = 1;
                Ten.Visible = true;

                //CỘT LOẠI SẢN PHẨM
                GridColumn LoaiSanPhamID = gridView1.Columns.Add();
                LoaiSanPhamID.Caption = "LoaiSanPhamID";
                LoaiSanPhamID.Name = "colLoaiSanPhamID";
                LoaiSanPhamID.FieldName = "LoaiSanPhamID";
                //Ten.VisibleIndex = 1;
                LoaiSanPhamID.Visible = false;

                //CỘT TÊN LOẠI SẢN PHẨM - CỘT PHÁT SINH 
                GridColumn TenLoaiSanPham = gridView1.Columns.Add();
                Ten.Caption = "Loại Sản Phẩm";
                Ten.Name = "colLoaiTenSanPham";
                Ten.VisibleIndex = 2;
                Ten.Visible = true;

                //CỘT IMP
                GridColumn Imp = gridView1.Columns.Add();
                Imp.Caption = "Hiệu Điện Thế Max";
                Imp.Name = "colHDTMax";
                Imp.FieldName = "VMax";
                Imp.VisibleIndex = 3;
                Imp.Visible = true;

                //CỘT VMP
                GridColumn Vmp = gridView1.Columns.Add();
                Vmp.Caption = "Hiệu Điện Thế Min";
                Vmp.Name = "colHDTMin";
                Vmp.FieldName = "VMin";
                Vmp.VisibleIndex = 4;
                Vmp.Visible = true;

                //CỘT VOC
                GridColumn Voc = gridView1.Columns.Add();
                Voc.Caption = "Ampe";
                Voc.Name = "colAmpe";
                Voc.FieldName = "Ampe";
                Voc.VisibleIndex = 5;
                Voc.Visible = true;

                //CỘT NGUỒN NHẬP
                GridColumn NguonNhap = gridView1.Columns.Add();
                NguonNhap.Caption = "Nguồn Nhập";
                NguonNhap.Name = "colNguonNhap";
                NguonNhap.FieldName = "NguonNhap";
                NguonNhap.VisibleIndex = 6;
                NguonNhap.Visible = true;

                //CỘT GIÁ.
                GridColumn Gia = gridView1.Columns.Add();
                Gia.Caption = "Giá";
                Gia.Name = "colGia";
                Gia.FieldName = "Gia";
                Gia.VisibleIndex = 7;
                Gia.Visible = true;

                //CỘT XÓA
                GridColumn Xoa = gridView1.Columns.Add();
                Xoa.Caption = "Xoa";
                Xoa.Name = "colXoa";
                Xoa.FieldName = "Xoa";
                //Xoa.VisibleIndex = 1;
                Xoa.Visible = false;

                //CỘT GHI CHÚ
                GridColumn GhiChu = gridView1.Columns.Add();
                GhiChu.Caption = "Ghi Chú";
                GhiChu.Name = "colGhiChu";
                GhiChu.FieldName = "GhiChu";
                GhiChu.VisibleIndex = 8;
                GhiChu.Visible = true;

                dgvHienThi.DataSource = listBoDieuKhien;
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowDataGridViewDieuKhienSac", ex);
            }
        }
        #endregion

        #region "[Show dgv Thiet Bi Dien]"
        /// <summary>
        /// Show dgv Thiet Bi Dien
        /// </summary>
        private void ShowDataGridViewThietBiDien()
        {
            try
            {
                gridView1.GroupPanelText = m_strTextUserContrl;

                //CỘT SỐ THỨ TỰ
                GridColumn colSTT = gridView1.Columns.Add();
                colSTT.Caption = "STT";
                colSTT.Name = "colSTT";
                colSTT.VisibleIndex = 0;
                colSTT.Visible = true;

                //CỘT TÊN SẢN PHẨM
                GridColumn Ten = gridView1.Columns.Add();
                Ten.Caption = "Tên Sản Phẩm";
                Ten.Name = "colTenSanPham";
                Ten.FieldName = "TenSanPham";
                Ten.VisibleIndex = 1;
                Ten.Visible = true;

                //CỘT LOẠI SẢN PHẨM
                GridColumn LoaiSanPhamID = gridView1.Columns.Add();
                LoaiSanPhamID.Caption = "LoaiSanPhamID";
                LoaiSanPhamID.Name = "colLoaiSanPhamID";
                LoaiSanPhamID.FieldName = "LoaiSanPhamID";
                //Ten.VisibleIndex = 1;
                LoaiSanPhamID.Visible = false;

                //CỘT TÊN LOẠI SẢN PHẨM - CỘT PHÁT SINH 
                GridColumn TenLoaiSanPham = gridView1.Columns.Add();
                Ten.Caption = "Loại Sản Phẩm";
                Ten.Name = "colLoaiTenSanPham";
                Ten.VisibleIndex = 2;
                Ten.Visible = true;

                //CỘT THÔNG SỐ KỸ THUẬT
                GridColumn ThongSoKyThuat = gridView1.Columns.Add();
                ThongSoKyThuat.Caption = "Thông Số Kỹ Thuật";
                ThongSoKyThuat.Name = "colThongSoKyThuat";
                ThongSoKyThuat.FieldName = "ThongSoKyThuat";
                ThongSoKyThuat.VisibleIndex = 3;
                ThongSoKyThuat.Visible = true;

                //CỘT Nguồn sáng
                GridColumn NguonSang = gridView1.Columns.Add();
                NguonSang.Caption = "Nguồn Sáng";
                NguonSang.Name = "colNguonSang";
                NguonSang.FieldName = "NguonSang";
                NguonSang.VisibleIndex = 4;
                NguonSang.Visible = true;

                //CỘT Chất Liệu
                GridColumn ChatLieu = gridView1.Columns.Add();
                ChatLieu.Caption = "Chất Liệu";
                ChatLieu.Name = "colChatLieu";
                ChatLieu.FieldName = "ChatLieu";
                ChatLieu.VisibleIndex = 5;
                ChatLieu.Visible = true;

                //CỘT Tấm thu năng lượng
                GridColumn TamThuNangLuong = gridView1.Columns.Add();
                TamThuNangLuong.Caption = "Tấm Thu Năng Lượng";
                TamThuNangLuong.Name = "colTamThuNangLuong";
                TamThuNangLuong.FieldName = "TamThuNangLuong";
                TamThuNangLuong.VisibleIndex = 6;
                TamThuNangLuong.Visible = true;

                ////CỘT IMP
                //GridColumn Imp = gridView1.Columns.Add();
                //Imp.Caption = "Imp";
                //Imp.Name = "colImp";
                //Imp.FieldName = "Imp";
                ////Imp.VisibleIndex = 5;
                //Imp.Visible = false;

                ////CỘT VMP
                //GridColumn Vmp = gridView1.Columns.Add();
                //Vmp.Caption = "Vmp";
                //Vmp.Name = "colVmp";
                //Vmp.FieldName = "Vmp";
                ////Vmp.VisibleIndex = 6;
                //Vmp.Visible = true;

                //CỘT NGUỒN NHẬP
                GridColumn NguonNhap = gridView1.Columns.Add();
                NguonNhap.Caption = "Nguồn Nhập";
                NguonNhap.Name = "colNguonNhap";
                NguonNhap.FieldName = "NguonNhap";
                NguonNhap.VisibleIndex = 7;
                NguonNhap.Visible = true;

                //CỘT GIÁ.
                GridColumn Gia = gridView1.Columns.Add();
                Gia.Caption = "Giá";
                Gia.Name = "colGia";
                Gia.FieldName = "Gia";
                Gia.VisibleIndex = 8;
                Gia.Visible = true;

                //CỘT XÓA
                GridColumn Xoa = gridView1.Columns.Add();
                Xoa.Caption = "Xoa";
                Xoa.Name = "colXoa";
                Xoa.FieldName = "Xoa";
                //Xoa.VisibleIndex = 1;
                Xoa.Visible = false;

                //CỘT GHI CHÚ
                GridColumn GhiChu = gridView1.Columns.Add();
                GhiChu.Caption = "Ưu Điểm";
                GhiChu.Name = "colGhiChu";
                GhiChu.FieldName = "GhiChu";
                GhiChu.VisibleIndex = 9;
                GhiChu.Visible = true;

                dgvHienThi.DataSource = listThietBiDien;
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowDataGridViewThietBiDien", ex);
            }
        }
        #endregion

        #region "[Hàm insert lỗi hệ thống]"
        public void InSert_LoiHeThong(string TenHam, Exception ex)
        {
            LoiHeThongDTO lhtDto = new LoiHeThongDTO();
            lhtDto.TenLoi = ex.Message.ToString();
            lhtDto.NgayTao = DateTime.Now;
            lhtDto.TenHamBiLoi = "ucLuoiHienThiPinNangLuong_" + TenHam;
            lhtDto.SuaLoi = false;
            lhtDto.GhiChu = "";
            NangLuongTieuDiem_Management.LoiHeThong_Insert(lhtDto);
            MessageBox.Show(lhtDto.TenLoi);
        }
        #endregion
    }
}
